* written code.
*/
-static void gdk_device_manager_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gdk_device_manager_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-
G_DEFINE_ABSTRACT_TYPE (GdkDeviceManager, gdk_device_manager, G_TYPE_OBJECT)
-enum {
- PROP_0,
- PROP_DISPLAY
-};
-
static void
gdk_device_manager_class_init (GdkDeviceManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->set_property = gdk_device_manager_set_property;
- object_class->get_property = gdk_device_manager_get_property;
-
- g_object_class_install_property (object_class,
- PROP_DISPLAY,
- g_param_spec_object ("display",
- P_("Display"),
- P_("Display for the device manager"),
- GDK_TYPE_DISPLAY,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
}
static void
gdk_device_manager_init (GdkDeviceManager *device_manager)
{
}
-
-static void
-gdk_device_manager_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id)
- {
- case PROP_DISPLAY:
- GDK_DEVICE_MANAGER (object)->display = g_value_get_object (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gdk_device_manager_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
-
- switch (prop_id)
- {
- case PROP_DISPLAY:
- g_value_set_object (value, GDK_DEVICE_MANAGER (object)->display);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-/**
- * gdk_device_manager_get_display:
- * @device_manager: a #GdkDeviceManager
- *
- * Gets the #GdkDisplay associated to @device_manager.
- *
- * Returns: (nullable) (transfer none): the #GdkDisplay to which
- * @device_manager is associated to, or %NULL. This memory is
- * owned by GDK and must not be freed or unreferenced.
- *
- * Since: 3.0
- **/
-GdkDisplay *
-gdk_device_manager_get_display (GdkDeviceManager *device_manager)
-{
- g_return_val_if_fail (GDK_IS_DEVICE_MANAGER (device_manager), NULL);
-
- return device_manager->display;
-}
GType gdk_device_manager_get_type (void) G_GNUC_CONST;
-GdkDisplay * gdk_device_manager_get_display (GdkDeviceManager *device_manager);
-
G_END_DECLS
struct _GdkDeviceManager
{
GObject parent_instance;
-
- /*< private >*/
- GdkDisplay *display;
};
struct _GdkDeviceManagerClass
G_DEFINE_TYPE (GdkQuartzDeviceManagerCore, gdk_quartz_device_manager_core, GDK_TYPE_DEVICE_MANAGER)
+
+static void
+gdk_device_manager_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id)
+ {
+ case PROP_DISPLAY:
+ GDK_QUARTZ_DEVICE_MANAGER_CORE (object)->display = g_value_get_object (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gdk_device_manager_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+
+ switch (prop_id)
+ {
+ case PROP_DISPLAY:
+ g_value_set_object (value, GDK_QUARTZ_DEVICE_MANAGER_CORE (object)->display);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
static void
gdk_quartz_device_manager_core_class_init (GdkQuartzDeviceManagerCoreClass *klass)
{
object_class->finalize = gdk_quartz_device_manager_core_finalize;
object_class->constructed = gdk_quartz_device_manager_core_constructed;
+
+ object_class->set_property = gdk_device_manager_set_property;
+ object_class->get_property = gdk_device_manager_get_property;
+
+ g_object_class_install_property (object_class,
+ PROP_DISPLAY,
+ g_param_spec_object ("display",
+ P_("Display"),
+ P_("Display for the device manager"),
+ GDK_TYPE_DISPLAY,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
}
static GdkDevice *
GdkSeat *seat;
device_manager = GDK_QUARTZ_DEVICE_MANAGER_CORE (object);
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (object));
+ display = device_manager->display;
device_manager->core_pointer = create_core_pointer (GDK_DEVICE_MANAGER (device_manager), display);
device_manager->core_keyboard = create_core_keyboard (GDK_DEVICE_MANAGER (device_manager), display);
struct _GdkQuartzDeviceManagerCore
{
- GdkDeviceManager parent_object;
+ GObject parent_object;
+ GdkDisplay *display;
GdkDevice *core_pointer;
GdkDevice *core_keyboard;
};
}
static GdkWaylandTabletData *
-gdk_wayland_device_manager_find_tablet (GdkWaylandSeat *seat,
- GdkDevice *device)
+gdk_wayland_seat_find_tablet (GdkWaylandSeat *seat,
+ GdkDevice *device)
{
GList *l;
}
static GdkWaylandTabletPadData *
-gdk_wayland_device_manager_find_pad (GdkWaylandSeat *seat,
- GdkDevice *device)
+gdk_wayland_seat_find_pad (GdkWaylandSeat *seat,
+ GdkDevice *device)
{
GList *l;
gboolean retval = G_SOURCE_REMOVE;
GdkWaylandTabletData *tablet;
- tablet = gdk_wayland_device_manager_find_tablet (seat, device);
+ tablet = gdk_wayland_seat_find_tablet (seat, device);
if (pointer->cursor)
{
GdkSeat *seat = gdk_device_get_seat (GDK_DEVICE (pad));
GdkWaylandTabletPadData *data;
- data = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat),
- GDK_DEVICE (pad));
+ data = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat),
+ GDK_DEVICE (pad));
g_assert (data != NULL);
return g_list_length (data->mode_groups);
GdkWaylandTabletPadGroupData *group;
GdkWaylandTabletPadData *data;
- data = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat),
- GDK_DEVICE (pad));
+ data = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat),
+ GDK_DEVICE (pad));
g_assert (data != NULL);
group = g_list_nth_data (data->mode_groups, n_group);
GdkSeat *seat = gdk_device_get_seat (GDK_DEVICE (pad));
GdkWaylandTabletPadData *data;
- data = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat),
- GDK_DEVICE (pad));
+ data = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat),
+ GDK_DEVICE (pad));
g_assert (data != NULL);
switch (feature)
GList *l;
gint i;
- data = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat),
- GDK_DEVICE (pad));
+ data = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat),
+ GDK_DEVICE (pad));
g_assert (data != NULL);
for (l = data->mode_groups, i = 0; l; l = l->next, i++)
void
_gdk_wayland_device_manager_add_seat (GdkDeviceManager *device_manager,
+ GdkDisplay *display,
guint32 id,
struct wl_seat *wl_seat)
{
- GdkDisplay *display;
GdkWaylandDisplay *display_wayland;
GdkWaylandSeat *seat;
- display = gdk_device_manager_get_display (device_manager);
display_wayland = GDK_WAYLAND_DISPLAY (display);
seat = g_object_new (GDK_TYPE_WAYLAND_SEAT,
void
_gdk_wayland_device_manager_remove_seat (GdkDeviceManager *manager,
+ GdkDisplay *display,
guint32 id)
{
- GdkDisplay *display = gdk_device_manager_get_display (manager);
GList *l, *seats;
seats = gdk_display_list_seats (display);
GdkDeviceManager *
_gdk_wayland_device_manager_new (GdkDisplay *display)
{
- return g_object_new (GDK_TYPE_WAYLAND_DEVICE_MANAGER,
- "display", display,
- NULL);
+ return g_object_new (GDK_TYPE_WAYLAND_DEVICE_MANAGER, NULL);
}
uint32_t
g_return_val_if_fail (GDK_IS_DEVICE (device), NULL);
seat = gdk_device_get_seat (device);
- tablet = gdk_wayland_device_manager_find_tablet (GDK_WAYLAND_SEAT (seat),
- device);
+ tablet = gdk_wayland_seat_find_tablet (GDK_WAYLAND_SEAT (seat), device);
if (tablet)
return tablet->path;
- pad = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat), device);
+ pad = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat), device);
if (pad)
return pad->path;
GdkSeat *seat;
seat = gdk_device_get_seat (device);
- pad = gdk_wayland_device_manager_find_pad (GDK_WAYLAND_SEAT (seat),
- device);
+ pad = gdk_wayland_seat_find_pad (GDK_WAYLAND_SEAT (seat), device);
if (!pad)
return;
id, &wl_seat_interface,
display_wayland->seat_version);
_gdk_wayland_device_manager_add_seat (display_wayland->device_manager,
+ GDK_DISPLAY (display_wayland),
id, seat);
_gdk_wayland_display_async_roundtrip (display_wayland);
}
GdkWaylandDisplay *display_wayland = data;
GDK_NOTE (MISC, g_message ("remove global %u", id));
- _gdk_wayland_device_manager_remove_seat (display_wayland->device_manager, id);
+ _gdk_wayland_device_manager_remove_seat (display_wayland->device_manager,
+ GDK_DISPLAY (display_wayland),
+ id);
gdk_wayland_display_remove_output (display_wayland, id);
g_hash_table_remove (display_wayland->known_globals, GUINT_TO_POINTER (id));
GdkDeviceManager *_gdk_wayland_device_manager_new (GdkDisplay *display);
void _gdk_wayland_device_manager_add_seat (GdkDeviceManager *device_manager,
+ GdkDisplay *display,
guint32 id,
struct wl_seat *seat);
void _gdk_wayland_device_manager_remove_seat (GdkDeviceManager *device_manager,
+ GdkDisplay *display,
guint32 id);
GdkKeymap *_gdk_wayland_device_get_keymap (GdkDevice *device);
#include "gdkkeysyms.h"
+
#define HAS_FOCUS(toplevel) \
((toplevel)->has_focus || (toplevel)->has_pointer_focus)
XEvent *xevent);
-G_DEFINE_TYPE_WITH_CODE (GdkX11DeviceManagerCore, gdk_x11_device_manager_core, GDK_TYPE_DEVICE_MANAGER,
+G_DEFINE_TYPE_WITH_CODE (GdkX11DeviceManagerCore, gdk_x11_device_manager_core, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GDK_TYPE_EVENT_TRANSLATOR,
gdk_x11_device_manager_event_translator_init))
+enum {
+ PROP_0,
+ PROP_DISPLAY
+};
+
+static void
+gdk_device_manager_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id)
+ {
+ case PROP_DISPLAY:
+ GDK_X11_DEVICE_MANAGER_CORE (object)->display = g_value_get_object (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gdk_device_manager_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+
+ switch (prop_id)
+ {
+ case PROP_DISPLAY:
+ g_value_set_object (value, GDK_X11_DEVICE_MANAGER_CORE (object)->display);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
static void
gdk_x11_device_manager_core_class_init (GdkX11DeviceManagerCoreClass *klass)
{
object_class->finalize = gdk_x11_device_manager_core_finalize;
object_class->constructed = gdk_x11_device_manager_core_constructed;
+ object_class->set_property = gdk_device_manager_set_property;
+ object_class->get_property = gdk_device_manager_get_property;
+
+ g_object_class_install_property (object_class,
+ PROP_DISPLAY,
+ g_param_spec_object ("display",
+ "Display",
+ "Display for the device manager",
+ GDK_TYPE_DISPLAY,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
static void
}
static GdkDevice *
-create_core_pointer (GdkDeviceManager *device_manager,
- GdkDisplay *display)
+create_core_pointer (GdkX11DeviceManagerCore *device_manager,
+ GdkDisplay *display)
{
return g_object_new (GDK_TYPE_X11_DEVICE_CORE,
"name", "Core Pointer",
}
static GdkDevice *
-create_core_keyboard (GdkDeviceManager *device_manager,
- GdkDisplay *display)
+create_core_keyboard (GdkX11DeviceManagerCore *device_manager,
+ GdkDisplay *display)
{
return g_object_new (GDK_TYPE_X11_DEVICE_CORE,
"name", "Core Keyboard",
GdkDisplay *display;
device_manager = GDK_X11_DEVICE_MANAGER_CORE (object);
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (object));
- device_manager->core_pointer = create_core_pointer (GDK_DEVICE_MANAGER (device_manager), display);
- device_manager->core_keyboard = create_core_keyboard (GDK_DEVICE_MANAGER (device_manager), display);
+ display = device_manager->display;
+ device_manager->core_pointer = create_core_pointer (device_manager, display);
+ device_manager->core_keyboard = create_core_keyboard (device_manager, display);
_gdk_device_set_associated_device (device_manager->core_pointer, device_manager->core_keyboard);
_gdk_device_set_associated_device (device_manager->core_keyboard, device_manager->core_pointer);
GdkWindow *window;
device_manager = GDK_DEVICE_MANAGER (translator);
- display = gdk_device_manager_get_display (device_manager);
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
window = gdk_x11_window_lookup_for_display (display, xevent->xany.window);
/* Apply keyboard grabs to non-native windows */
#include "gdkx11devicemanager-xi2.h"
#include "gdkx11device-xi2.h"
+#include "gdkx11devicemanager-core.h"
#include "gdkdevicemanagerprivate-core.h"
#include "gdkdeviceprivate.h"
#include "gdkdevicetoolprivate.h"
struct _GdkX11DeviceManagerXI2Class
{
- GdkDeviceManagerClass parent_class;
+ GdkX11DeviceManagerCoreClass parent_class;
};
static void gdk_x11_device_manager_xi2_event_translator_init (GdkEventTranslatorIface *iface);
GdkDisplay *display;
Display *xdisplay;
- display = gdk_device_manager_get_display (device_manager);
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
xdisplay = GDK_DISPLAY_XDISPLAY (display);
XISelectEvents (xdisplay, xwindow, event_mask, 1);
GdkDisplay *display;
GdkSeat *seat;
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
seat = gdk_device_get_seat (device1);
if (!seat)
GdkDisplay *display;
GdkDevice *device;
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
device = create_device (GDK_DEVICE_MANAGER (device_manager), display, dev);
g_hash_table_replace (device_manager->id_table,
G_OBJECT_CLASS (gdk_x11_device_manager_xi2_parent_class)->constructed (object);
device_manager = GDK_X11_DEVICE_MANAGER_XI2 (object);
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (object));
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
xdisplay = GDK_DISPLAY_XDISPLAY (display);
g_assert (device_manager->major == 2);
int device_id;
device_manager_xi2 = (GdkX11DeviceManagerXI2 *) device_manager;
- display = gdk_device_manager_get_display (device_manager);
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display),
None, &device_id);
int ndevices;
gint i;
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
xdisplay = GDK_DISPLAY_XDISPLAY (display);
for (i = 0; i < ev->num_info; i++)
GdkDisplay *display;
GdkDevice *device, *source_device;
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (device_manager));
+ display = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->display;
device = g_hash_table_lookup (device_manager->id_table,
GUINT_TO_POINTER (ev->deviceid));
source_device = g_hash_table_lookup (device_manager->id_table,
GdkWindow *window = NULL;
gboolean should_have_window = TRUE;
- display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (translator));
+ display = GDK_X11_DEVICE_MANAGER_CORE (translator)->display;
switch (ev->evtype)
{
#include <X11/Xlib.h>
#include "gdkx11devicemanager-core.h"
-#include "gdkdevicemanagerprivate.h"
G_BEGIN_DECLS
struct _GdkX11DeviceManagerCore
{
- GdkDeviceManager parent_object;
+ GObject parent_instance;
+ GdkDisplay *display;
GdkDevice *core_pointer;
GdkDevice *core_keyboard;
};
struct _GdkX11DeviceManagerCoreClass
{
- GdkDeviceManagerClass parent_class;
+ GObjectClass parent_class;
};
void _gdk_device_manager_core_handle_focus (GdkWindow *window,